package com.yanggu.payment.service;

import com.yanggu.payment.entity.weixinpay.resp.WechatAppQueryResult;
import com.yanggu.payment.entity.weixinpay.resp.WeiXinPayApplyRefundResp;
import com.yanggu.payment.entity.weixinpay.resp.WeiXinPayRefundNotify;
import com.yanggu.payment.vo.R;

import java.util.Map;

/**
 * @version V1.0
 * @author: YangGu
 * @date: 2022/5/4 23:36
 * @description:
 */
public interface WeiXinPayService {

    Map<String, Object> nativePay(Long productId);

    WechatAppQueryResult queryOrder(String orderNo);

    R nativeNotify(String body, String serialNumber, String nonce, String timestamp, String signature) throws Exception;

    void handlerWeiXinPaySuccess(WechatAppQueryResult wechatAppQueryResult);

    void handlerWeiXinRefundNotify(WeiXinPayRefundNotify refundNotify);

    String downloadBill(String billDate, String type);

    void cancelOrder(String orderNo);

    void refunds(String orderNo, String reason);

    WeiXinPayApplyRefundResp queryRefundNo(String refundNo);

    R refundsNotify(String body, String serialNumber, String nonce, String timestamp, String signature) throws Exception;

}
